package com.mida.bms.report.vo;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.mida.bms.report.LongArray2StringSerialize;
import com.mida.tool.common.utils.LongToStringSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;

import java.util.Date;
import java.util.List;

@Setter
@Getter
public class DocStructTemplateInfoVo {

    /**
     * 结构化模板基本信息标识
     */
    //@NotNull(groups = { UpdateValidator.class },message = "soid不能为空")
    @JsonSerialize(using= com.fasterxml.jackson.databind.ser.std.ToStringSerializer.class)
    @ApiModelProperty(value = "结构化模板基本信息标识")
    private Long stTemplateInfoSoid;

    /**
     * 报告模板描述信息
     */
    @ApiModelProperty(value = "报告模板描述信息")
    private String stTemplateDesc;

    /**
     * 版本
     */
    @ApiModelProperty(value = "版本")
    private String verson;

    /**
     * 报告模板名称
     */
    //@NotBlank(groups = { InsertValidator.class, UpdateValidator.class },message = "报告模板名称不能为空")
    @ApiModelProperty(value = "报告模板名称")
    private String stTemplateName;

    /**
     * 五笔
     */
    @ApiModelProperty(value = "五笔")
    private String wbCode;

    /**
     * 拼音
     */
    @ApiModelProperty(value = "拼音")
    private String pyCode;

    /**
     * 结构化报告模板授权空间关系标识
     */
    @JsonSerialize(using= com.fasterxml.jackson.databind.ser.std.ToStringSerializer.class)
    @ApiModelProperty(value = "结构化报告模板授权空间关系标识")
    private String stTempAuthSoids;

    /**
     * 状态
     */
    @JsonSerialize(using= com.fasterxml.jackson.databind.ser.std.ToStringSerializer.class)
    @ApiModelProperty(value = "状态")
    private Long status;

    /**
     * 检查服务类型
     */
    @JsonSerialize(using= com.fasterxml.jackson.databind.ser.std.ToStringSerializer.class)
        @ApiModelProperty(value = "检查服务类型")
    private Long examServiceType;

    /**
     * 最后修改人
     */
    @JsonSerialize(using= com.fasterxml.jackson.databind.ser.std.ToStringSerializer.class)
    @ApiModelProperty(value = "最后修改人")
    private Long updateUser;

    /**
     * 逻辑删除标识
     */
    @JsonSerialize(using= com.fasterxml.jackson.databind.ser.std.ToStringSerializer.class)
    @ApiModelProperty(value = "逻辑删除标识")
    private Long isDelete;

    /**
     * 结构化模板定义空间标识
     */
    @JsonSerialize(using= com.fasterxml.jackson.databind.ser.std.ToStringSerializer.class)
    @ApiModelProperty(value = "结构化模板定义空间标识")
    private Long stTempDefineSoid;

    /**
     * 最后修改日期
     */
    @ApiModelProperty(value = "最后修改日期")
    private Date updateDate;

    /**
     * 创建日期
     */
    @ApiModelProperty(value = "创建日期")
    private Date createDate;


    /**
     * 检查部位
     */
    //@JsonSerialize(using= com.fasterxml.jackson.databind.ser.std.ToStringSerializer.class)
    @ApiModelProperty(value = "检查部位")
    private String examParts;


    /**
     * 疾病分类
     */
    //@JsonSerialize(using= com.fasterxml.jackson.databind.ser.std.ToStringSerializer.class)
    @ApiModelProperty(value = "疾病分类")
    private String diseaseClass;

    /**
     * 诊断标识
     */
    //@JsonSerialize(using= com.fasterxml.jackson.databind.ser.std.ToStringSerializer.class)
    @ApiModelProperty(value = "诊断标识")
    private String diagnosisSoid;

    /**
     * 用户soid
     */
    @JsonSerialize(using= com.fasterxml.jackson.databind.ser.std.ToStringSerializer.class)
    private Long employeeSoid;

    /**
     * 查询条件
     */
    private String searchData;

    /**
     * 当前页
     */
    private Long currentPage;

    /**
     * 每页展示多少件
     */
    private Long pageSize;

    /**
     * 业务单元的soid
     */
    @JsonSerialize(using= com.fasterxml.jackson.databind.ser.std.ToStringSerializer.class)
    private Long businessUnitSoid;

    @JsonSerialize(using= LongArray2StringSerialize.class)
    private List<Long> listExamServiceTypeSoid;
}
